/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package CONTROLADOR;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import MODELO.ModeloIngrediente;
import MODELO.ModeloProducto;
import VISTA.frmListados;

/**
 *
 * @author usuario
 */
public class ControladorListados implements ActionListener {
    private frmListados frmListado;
    private ModeloIngrediente modeloIngrediente;
    private ModeloProducto modeloProducto;
	private boolean ordenar,ingrediente,producto,mas;
	
	public static void main(String[] args) {
		new ControladorListados();
	}
	
	
    public ControladorListados() {
        frmListado= new frmListados();
        frmListado.setVisible(true);
        modeloIngrediente= new ModeloIngrediente();
        modeloProducto = new ModeloProducto();
        frmListado.addListener(this);
        cancelar();
    }
    

    private void cancelar() {
    	ordenar=false;
        ingrediente=false;
        producto=false;
        mas=false;
        frmListado.getModeloIngrediente().setRowCount(0);
        frmListado.getModeloMas().setRowCount(0);
        frmListado.getModeloProducto().setRowCount(0);
	}


	public void actionPerformed(ActionEvent ae) {
    	 if(ae.getActionCommand().equals("Generar")){    		 
    		 if(ingrediente){
    			 listaIngrediente();
    			 //cancelar();
    		 }
    		 else if(producto){
    			 listarProductos();
    			 //cancelar();
    		 }
    		 else if(mas){
    			 listarMas();
    			 //cancelar();
    		 }
    		 else
    			 frmListado.mostrarMensaje("Debe selecionar el Listado que desea ver");

     }
     else if(ae.getActionCommand().equals("Asc")){
         ordenar = true;
     }
     else if(ae.getActionCommand().equals("Des")){
         ordenar = false;
     }
     else if(ae.getActionCommand().equals("Ingredientes")){
         ingrediente=true;
         mas=false;
         producto=false;
     }
     else if(ae.getActionCommand().equals("Productos")){
    	 producto=true;
    	 mas=false;
         ingrediente=false;
     }
     else if(ae.getActionCommand().equals("Mas")){
    	 mas =true;
         ingrediente=false;
         producto=false;
     }
     else if(ae.getActionCommand().equals("Cancelar")){
    	 cancelar();
     }
            
    }


	private void listarMas() {
		  frmListado.getModeloIngrediente().setRowCount(0);
	        frmListado.getModeloMas().setRowCount(0);
	        frmListado.getModeloProducto().setRowCount(0);
		Vector<String []> v = modeloProducto.ingredientesMasUsados(ordenar);
        frmListado.getProductoOrdenes().setModel(frmListado.getModeloMas());
        Vector f= null;
        for (String [] s : v) {
        	f =new Vector();
       	 	for (String string : s) {
       	 		f.add(string);
       	 	}
       	 frmListado.getModeloMas().addRow(f);
		}
	}


	private void listarProductos() {
		  frmListado.getModeloIngrediente().setRowCount(0);
	        frmListado.getModeloMas().setRowCount(0);
	        frmListado.getModeloProducto().setRowCount(0);
		Vector<String []> v = modeloProducto.listarVentas(ordenar);
        frmListado.getProductoOrdenes().setModel(frmListado.getModeloProducto());
        Vector f = null;
        for (String [] s : v) {
        	 f =new Vector();
        	for (String string : s) {
           	
           	 f.add(string);
       	 }
       	 frmListado.getModeloProducto().addRow(f);
		}
	}


	private void listaIngrediente() {
		  frmListado.getModeloIngrediente().setRowCount(0);
	        frmListado.getModeloMas().setRowCount(0);
	        frmListado.getModeloProducto().setRowCount(0);
		Vector<ModeloIngrediente> v = modeloIngrediente.listar();
        frmListado.getProductoOrdenes().setModel(frmListado.getModeloIngrediente());
        Vector f;
        for (ModeloIngrediente m : v) {
       	 f =new Vector();
       	 f.add(m.getDescripcion());
       	 f.add(m.getStock());
       	 frmListado.getModeloIngrediente().addRow(f);
		}
	}

   

}
